/*******************************************************************************
 * Classe MenuPrinipal  classe de création du panneau du menu principal
 ******************************************************************************/
package tp2;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
 *
 * @author W&G
 */
public class MenuPrincipal extends JPanel {

    private Fenetre fenetre; // Référence à la fenêtre
    private JLabel lblTitre = 
            new JLabel(new ImageIcon("Redd.gif")); // L'image de Redd
    private JLabel lblTitreTexte = 
            new JLabel("Redd le rond cool et culturé"); // Titre du jeu
    private JButton btnJouer = new JButton("Jouer"); // Bouton Jouer
    private JButton btnReglesJeu = 
            new JButton("Regles du jeu"); // Bouton Règles du jeu
    private JButton btnStatistiques = 
            new JButton("Statistiques"); // Bouton Statistiques
    private JButton btnAPropos = new JButton("À propos"); // Bouton À propos
    private JButton btnQuitter = new JButton("Quitter"); // Bouton Quitter
    private JPanel pnlPrincipal = 
            new JPanel(new GridLayout(3, 1)); // Panneau du menu principal

    // Panneaux utilisés pour le layout
    private JPanel pnl1 = new JPanel(new GridLayout(3, 1));
    private JPanel pnl1a = new JPanel();
    private JPanel pnl1b = new JPanel();
    private JPanel pnl1c = new JPanel();
    private JPanel pnl2 = new JPanel(new GridLayout(3, 1));
    private JPanel pnl2a = new JPanel();
    private JPanel pnl2b = new JPanel();
    private JPanel pnl2c = new JPanel();

    // ActionListener
    private BoutonPresse monBoutonPresse = new BoutonPresse();

    public MenuPrincipal(Fenetre fenetre) {
        this.fenetre = fenetre; // relie à la fenêtre
        addComponents(); // ajoute tous les éléments au menu
    }

    /* Méthode qui contient toutes les instructions pour ajouter les boutons,
     * labels, etc. au menu principal */
    private void addComponents() {

        lblTitreTexte.setFont(new Font(lblTitreTexte.getFont().getFontName(),
                lblTitreTexte.getFont().getStyle(), 40)); // Grandeur du texte
        lblTitreTexte.setForeground(new Color(220, 0, 0)); // Couleur du texte

        // Règle la taille des boutons
        btnJouer.setPreferredSize(new Dimension(300, 50));
        btnReglesJeu.setPreferredSize(new Dimension(300, 50));
        btnStatistiques.setPreferredSize(new Dimension(300, 50));
        btnAPropos.setPreferredSize(new Dimension(300, 50));
        btnQuitter.setPreferredSize(new Dimension(300, 50));

        // Ajout de panneaux
        pnl1a.add(btnJouer);
        pnl1.add(pnl1a);
        pnl1b.add(btnReglesJeu);
        pnl1.add(pnl1b);
        pnl1c.add(btnStatistiques);
        pnl1.add(pnl1c);
        pnl2a.add(btnAPropos);
        pnl2.add(pnl2a);
        pnl2b.add(btnQuitter);
        pnl2.add(pnl2b);
        pnl2c.add(lblTitreTexte);
        pnl2.add(pnl2c);

        pnlPrincipal.add(lblTitre);
        pnlPrincipal.add(pnl1);
        pnlPrincipal.add(pnl2);
        // Fin Ajout de panneaux

        // Ajout des ActionListener
        btnQuitter.addActionListener(monBoutonPresse);
        btnJouer.addActionListener(monBoutonPresse);
        btnReglesJeu.addActionListener(monBoutonPresse);
        btnAPropos.addActionListener(monBoutonPresse);
        btnStatistiques.addActionListener(monBoutonPresse);
        // Fin Ajout des ActionListener
        // Couleur de fond des panneaux
        pnlPrincipal.setBackground(fenetre.getFond());
        pnl1.setBackground(fenetre.getFond());
        pnl1a.setBackground(fenetre.getFond());
        pnl1b.setBackground(fenetre.getFond());
        pnl1c.setBackground(fenetre.getFond());
        pnl2.setBackground(fenetre.getFond());
        pnl2a.setBackground(fenetre.getFond());
        pnl2b.setBackground(fenetre.getFond());
        pnl2c.setBackground(fenetre.getFond());
        this.setBackground(fenetre.getFond());

        this.add(pnlPrincipal); // Ajoute le panneau principal

    }

    /* Classe interne qui gère les événements sur les composantes du menu
     * principal */
    class BoutonPresse implements ActionListener {

        public void actionPerformed(ActionEvent ae) {
            if (ae.getSource() == btnQuitter) {
                System.exit(0); // Quitte
            }
            if (ae.getSource() == btnJouer) {
                fenetre.afficherJeu(); // Affiche le jeu
            }
            if (ae.getSource() == btnReglesJeu) {
                fenetre.afficherReglesDuJeu(false); // Affiche les règles du jeu
            }
            if (ae.getSource() == btnAPropos) {
                fenetre.afficherAPropos(false); // Affiche l'à propos
            }
            if (ae.getSource() == btnStatistiques) {
                fenetre.afficherStatistiques(false); // Affiche les statistiques
            }

        }
    }
}
